#pragma once
#include <stdint.h>

namespace usrtos {
struct logtrigger {
    uint64_t mask;
    uint64_t set;
    void init() {
        mask = 0;
        set = 0;
    };
    void care(int i)     { mask |= 1UL<<i;       };
    void uncare(int i)   { mask &= ~(1UL<<i);    };
    void disable(int i)  { set  |= 1UL<<i;       };
    void enable(int i)   { set  &= ~(1UL<<i);    };
    bool test()          { return (set&mask)==0; };
    bool test(int i)     { return ((set>>i)&1)==0; };
}; // end of logtrigger
}; // end namespace usrtos